#include<array>

using namespace System;
using namespace System::Collections::Generic;
using namespace System::Runtime::InteropServices;

namespace O1 {
	namespace Storage{
		namespace VersionEncodings {

			[StructLayoutAttribute(LayoutKind::Explicit)]
			value struct version_thumprint
			{
			public:

				version_thumprint(Guid value)
				{
					this->Value = value;
				}

				version_thumprint(Int64 index, Int64 versionId)
				{
					this->Index = index;
					this->VersionId = versionId;
				}

				[FieldOffset(0)]
				Guid Value;

				[FieldOffset(0)]
				Int64 Index;

				[FieldOffset(8)]
				Int64 VersionId;

				[FieldOffset(0)]
				Int32 a;

				[FieldOffset(4)]
				Int16 b;

				[FieldOffset(6)]
				Int16 c;

				[FieldOffset(8)]
				unsigned char d;

				[FieldOffset(9)]
				unsigned char e;

				[FieldOffset(10)]
				unsigned char f;

				[FieldOffset(11)]
				unsigned char g;

				[FieldOffset(12)]
				unsigned char h;

				[FieldOffset(13)]
				unsigned char i;

				[FieldOffset(14)]
				unsigned char j;

				[FieldOffset(15)]
				unsigned char k;
			};
		}
	}
}